Today many enterprises now use cloud-based computing platforms that allow services and data to be accessed over the Internet (or via other networks). Infrastructure providers of these cloud-based computing platforms offer network-based processing systems that often support multiple enterprises (or tenants) using common computer hardware and data storage. This “cloud” computing model allows applications to be provided over a platform “as a service” supplied by the infrastructure provider. The infrastructure provider typically abstracts the underlying hardware and other resources used to deliver a customer-developed application so that the customer no longer needs to operate and support dedicated server hardware. The cloud computing model can often provide substantial cost savings to the customer over the life of the application because the customer no longer needs to provide dedicated network infrastructure, electrical and temperature controls, physical security and other logistics in support of dedicated server hardware.
One type of cloud-based application is a customer relationship management (CRM) application that can provide an end user with sophisticated customer relationship data. Records for each customer can be stored at a server system. The end user can launch the CRM application and submit requests to the server system over a network to access records that are relevant to a particular customer. The server system fetches the relevant records, which can then be presented to the end user to provide the end user with a wealth of information about that particular customer.
Traditional sales and service channels such as phone, email and chat allow agents to send notification, communication and marketing content to consumers, prospective customers or existing customers manually. More recently, automated marketing systems have been deployed that rely on bots (e.g., Chatbots). Companies often use bots to cut down on cost, instead of employing people to communicate with consumers and answer customer's questions.
A bot is an automated program (or software application) that runs automated tasks (scripts) over the Internet and operates as an agent for a user or another program or simulates a human activity. Typically, bots perform tasks that are both simple and structurally repetitive, at a much higher rate than would be possible for a human alone. For example, bot (also referred to as a web crawler) may lurk in the background of a conversation channel, and automatically interact and communicate with users (e.g., potential or existing customers) to answer many common questions that are regularly asked. In other words, a bot can allow a user to ask questions in plain language, and can then formulate a response (e.g., based on pattern matching) and reply to messages that have been received from the user via instant messaging (IM), instant relay chat, Internet Relay Chat (IRC), or other assorted web interfaces (e.g., Facebook Bots and Twitterbots). Some bots can also help gather information from the users that it communicates with and store this information in a database for marketing purposes.
While this approach works well for frequently occurring questions that are commonly asked, due to the highly transactional nature of many conversations, it can be difficult, if not impossible, to design a bot that can provide different customers with content that is curated and targeted for each particular customer. It would be desirable to provide systems that can rely on bots to automatically answer frequently occurring questions that are commonly asked, but also provide different customers with targeted content that is addressed for each particular customer.